React DevToolsã®å¯èœæ§ãæå€§éã«åŒãåºããŸããuseDebugValueããã¯ã䜿çšããŠã«ã¹ã¿ã ããã¯ã«ãã©ãŒããããããã©ãã«ã衚瀺ãããããã°ãç°¡çŽ åããæ¹æ³ãåŠã³ãŸãã
React useDebugValue: DevToolsã§ã®ã«ã¹ã¿ã ããã¯ã®ãããã°ã匷åãã
çŸä»£ã®Reactéçºã«ãããŠãã«ã¹ã¿ã ããã¯ã¯åå©çšå¯èœãªããžãã¯ã®ç€ã§ããããã«ãããè€éãªç¶æ
管çãå¯äœçšãã³ã³ããã¹ãã®çžäºäœçšããã¯ãªãŒã³ã§æ§æå¯èœãªé¢æ°ã«æœè±¡åã§ããŸãããã®æœè±¡åã¯ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããäžã§åŒ·åã§ããããããã°äžã«äžæçãªå±€ãçã¿åºãããšããããŸããReact DevToolsã§ã«ã¹ã¿ã ããã¯ã䜿çšããŠããã³ã³ããŒãã³ããæ€æ»ãããšãå€ãã®å ŽåãuseStateãuseEffectãšãã£ãæ±çšçãªããªããã£ãããã¯ã®ãªã¹ãã衚瀺ãããã«ã¹ã¿ã ããã¯ãå®éã«äœãããŠãããã«ã€ããŠã®ã³ã³ããã¹ãã¯ã»ãšãã©ãããŸãããããã§ç»å Žããã®ãuseDebugValueã§ãã
useDebugValueã¯ããã®ã®ã£ãããåããããã«èšèšãããç¹æ®ãªReactããã¯ã§ããããã«ãããéçºè
ã¯ã«ã¹ã¿ã ããã¯ã«å¯ŸããŠäººéãèªã¿åããã«ã¹ã¿ã ã©ãã«ãæäŸã§ãããã®ã©ãã«ã¯React DevToolsã€ã³ã¹ãã¯ã¿ã«çŽæ¥è¡šç€ºãããŸããããã¯éçºè
äœéšãåäžãããããã®ã·ã³ãã«ãã€éåžžã«å¹æçãªããŒã«ã§ããããããã°ã»ãã·ã§ã³ãããéããããçŽæçã«ããŸãããã®å
æ¬çãªã¬ã€ãã§ã¯ãuseDebugValueã®åºæ¬çãªå®è£
ããé«åºŠãªããã©ãŒãã³ã¹ã«é¢ããèæ
®äºé
ããããŠå®è·µçãªå®äžçã®ãŠãŒã¹ã±ãŒã¹ãŸã§ãç¥ã£ãŠããã¹ããã¹ãŠãæ¢æ±ããŸãã
useDebugValueãšã¯å
·äœçã«äœãïŒ
ãã®æ žå¿ã«ãããŠãuseDebugValueã¯React DevToolså
ã§ã«ã¹ã¿ã ããã¯ã«èª¬æçãªã©ãã«ã远å ã§ããããã¯ã§ããã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ãæ¬çªãã«ãã«ã¯äœã®åœ±é¿ãäžããŸãããããã¯çŽç²ã«éçºæçšã®ããŒã«ã§ãããã®å¯äžã®ç®çã¯ãã«ã¹ã¿ã ããã¯ã®å
éšç¶æ
ãã¹ããŒã¿ã¹ã«é¢ããæŽå¯ãæäŸããDevToolsã®ãHooksãããªãŒãã¯ããã«æ
å ±éè±ãã«ããããšã§ãã
å
žåçãªã¯ãŒã¯ãããŒãèããŠã¿ãŸãããããŠãŒã¶ãŒã®èªèšŒç¶æ
ã管çããã«ã¹ã¿ã ããã¯ãäŸãã°useUserSessionãæ§ç¯ããŸãããã®ããã¯ã¯å
éšã§useStateã䜿çšããŠãŠãŒã¶ãŒããŒã¿ãä¿åããuseEffectã䜿çšããŠããŒã¯ã³ã®æŽæ°ãåŠçãããããããŸããããã®ããã¯ã䜿çšããã³ã³ããŒãã³ããæ€æ»ãããšãDevToolsã«ã¯useStateãšuseEffectã衚瀺ãããŸããããããã©ã®stateãã©ã®ããã¯ã«å±ããŠããã®ã§ããããïŒçŸåšã®ã¹ããŒã¿ã¹ã¯äœã§ããããïŒãŠãŒã¶ãŒã¯ãã°ã€ã³ããŠããŸããïŒæåã§ã³ã³ãœãŒã«ã«å€ããã°åºåããªãéããå³åº§ã«å¯èŠæ§ãåŸãããšã¯ã§ããŸãããuseDebugValueã¯ããLogged In as: Jane DoeãããSession: Expiredãã®ãããªã©ãã«ãDevTools UIã®useUserSessionããã¯ã«çŽæ¥æ·»ä»ã§ããããã«ããããšã§ããã®åé¡ã解決ããŸãã
äž»ãªç¹åŸŽïŒ
- ã«ã¹ã¿ã ããã¯å°çšïŒ
useDebugValueã¯ã«ã¹ã¿ã ããã¯ïŒååã'use'ã§å§ãŸã颿°ïŒå ããã®ã¿åŒã³åºããŸããéåžžã®ã³ã³ããŒãã³ãå ã§åŒã³åºããšãšã©ãŒã«ãªããŸãã - DevToolsãšã®çµ±åïŒæäŸããå€ã¯ãReact DevToolsãã©ãŠã¶æ¡åŒµæ©èœã§ã³ã³ããŒãã³ããæ€æ»ããŠãããšãã«ã®ã¿è¡šç€ºãããŸãããã以å€ã®åºåã¯ãããŸããã
- éçºæã®ã¿ïŒReactã®ä»ã®éçºäžå¿ã®æ©èœãšåæ§ã«ã
useDebugValueã®ã³ãŒãã¯æ¬çªãã«ãããèªåçã«åé€ãããã©ã€ãã¢ããªã±ãŒã·ã§ã³ã«ããã©ãŒãã³ã¹ã®åœ±é¿ããŒãã§ããããšãä¿èšŒããŸãã
åé¡ç¹ïŒã«ã¹ã¿ã ããã¯ã®ããã©ãã¯ããã¯ã¹ã
useDebugValueã®äŸ¡å€ãååã«çè§£ããããã«ãããã解決ããåé¡ãæ€èšŒããŠã¿ãŸãããããŠãŒã¶ãŒã®ãã©ãŠã¶ã®ãªã³ã©ã€ã³ç¶æ
ã远跡ããã«ã¹ã¿ã ããã¯ããããšæ³åããŠãã ãããããã¯ããªãã©ã€ã³ã·ããªãªãé©åã«åŠçããå¿
èŠãããçŸä»£ã®Webã¢ããªã±ãŒã·ã§ã³ã§äžè¬çãªãŠãŒãã£ãªãã£ã§ãã
useDebugValueã䜿çšããªãã«ã¹ã¿ã ããã¯
以äžã¯ãuseOnlineStatusããã¯ã®ç°¡åãªå®è£
ã§ãã
import { useState, useEffect } from 'react';
function useOnlineStatus() {
const [isOnline, setIsOnline] = useState(navigator.onLine);
useEffect(() => {
const handleOnline = () => setIsOnline(true);
const handleOffline = () => setIsOnline(false);
window.addEventListener('online', handleOnline);
window.addEventListener('offline', handleOffline);
return () => {
window.removeEventListener('online', handleOnline);
window.removeEventListener('offline', handleOffline);
};
}, []);
return isOnline;
}
次ã«ããã®ããã¯ãã³ã³ããŒãã³ãã§äœ¿çšããŠã¿ãŸãããã
function StatusBar() {
const isOnline = useOnlineStatus();
return <h2>{isOnline ? 'â
Online' : 'â Disconnected'}</h2>;
}
React DevToolsã§StatusBarã³ã³ããŒãã³ããæ€æ»ãããšããHooksãããã«ã«æ¬¡ã®ãããªãã®ã衚瀺ãããŸãã
- OnlineStatus:
- State: true
- Effect: () => {}
ããã¯æ©èœããŸãããçæ³çã§ã¯ãããŸãããæ±çšçãªãStateããšããŒã«å€ã衚瀺ãããŸãããã®åçŽãªã±ãŒã¹ã§ã¯ããtrueããããªã³ã©ã€ã³ããæå³ãããšæšæž¬ã§ããŸããããããããã¯ããconnectingãããre-checkingãããunstableãã®ãããªããè€éãªç¶æ ã管çããŠãããã©ãã§ããããïŒã³ã³ããŒãã³ããè€æ°ã®ã«ã¹ã¿ã ããã¯ã䜿çšãããããããç¬èªã®ããŒã«å€ã®ç¶æ ãæã£ãŠãããã©ãã§ããããïŒã©ã®ãState: trueããã©ã®ããžãã¯ã«å¯Ÿå¿ããã®ããæšæž¬ããã²ãŒã ã«ããã«ãªã£ãŠããŸããŸããã«ã¹ã¿ã ããã¯ãã³ãŒãå ã§åŒ·åã«ããæœè±¡åã¯ãDevToolså ã§ã¯ããããäžéæã«ãããŸãã
解決çïŒæç¢ºæ§ã®ããã®useDebugValueã®å®è£
useOnlineStatusããã¯ããªãã¡ã¯ã¿ãªã³ã°ããŠuseDebugValueãå«ããŠã¿ãŸãããã倿Žã¯æå°éã§ããããã®åœ±é¿ã¯å€§ããã§ãã
import { useState, useEffect, useDebugValue } from 'react';
function useOnlineStatus() {
const [isOnline, setIsOnline] = useState(navigator.onLine);
// ãã®è¡ã远å ïŒ
useDebugValue(isOnline ? 'Online' : 'Offline');
useEffect(() => {
// ... effect logic remains the same ...
}, []);
return isOnline;
}
ãã®äžè¡ã远å ããç¶æ
ã§ãå床React DevToolsã§StatusBarã³ã³ããŒãã³ããæ€æ»ããŠã¿ãŸãããããHooksãããã«ã¯åçã«ç°ãªã£ãŠèŠããã§ãããã
- OnlineStatus: "Online"
- State: true
- Effect: () => {}
å³åº§ã«ãæç¢ºã§äººéãèªã¿ãããã©ãã«ãOnlineãã衚瀺ãããŸãããããã¯ãŒã¯ããåæãããšããã®ã©ãã«ã¯èªåçã«ãOfflineãã«æŽæ°ãããŸããããã«ããããã¹ãŠã®ææ§ããåãé€ãããŸãããã¯ãçã®stateå€ãè§£éããå¿ èŠã¯ãããŸãããããã¯ããã®ã¹ããŒã¿ã¹ãæ£ç¢ºã«æããŠãããŸãããã®å³æã®ãã£ãŒãããã¯ã«ãŒãã¯ããããã°ãå éããç¹ã«ã«ã¹ã¿ã ããã¯ã®å éšåäœã«æ £ããŠããªãéçºè ã«ãšã£ãŠãã³ã³ããŒãã³ãã®åäœã®çè§£ãã¯ããã«ç°¡åã«ããŸãã
é«åºŠãªäœ¿çšæ³ãšããã©ãŒãã³ã¹ã®æé©å
useDebugValueã®åºæ¬çãªäœ¿çšæ³ã¯ç°¡åã§ãããéèŠãªããã©ãŒãã³ã¹ã«é¢ããèæ
®äºé
ããããŸããuseDebugValueã«æž¡ãåŒã¯ãããã¯ã䜿çšããã³ã³ããŒãã³ãã®ãã¹ãŠã®ã¬ã³ããªã³ã°ã§å®è¡ãããŸããisOnline ? 'Online' : 'Offline'ã®ãããªåçŽãªäžé
æŒç®åã®å Žåãããã©ãŒãã³ã¹ã³ã¹ãã¯ãããããã§ãã
ãããããã£ãšè€éã§èšç®ã³ã¹ãã®é«ãå€ã衚瀺ããå¿ èŠãããå Žåã¯ã©ãã§ããããïŒäŸãã°ãå€§èŠæš¡ãªããŒã¿é åã管çããããã¯ãæ³åããŠã¿ãŠãã ããããããã°ã®ããã«ããã®ããŒã¿ã®èŠçŽã衚瀺ããããšããŸãã
function useLargeData(data) {
// ... logic to manage data
// æœåšçãªããã©ãŒãã³ã¹åé¡ïŒããã¯ãã¹ãŠã®ã¬ã³ããªã³ã°ã§å®è¡ãããŸãïŒ
useDebugValue(`Data contains ${data.length} items. First item: ${JSON.stringify(data[0])}`);
return data;
}
ãã®ã·ããªãªã§ã¯ããã£ãã«èŠãããªããããã°ã©ãã«ã®ããã ãã«ããã¹ãŠã®ã¬ã³ããªã³ã°ã§JSON.stringifyã䜿çšããŠæœåšçã«å€§ããªãªããžã§ã¯ããã·ãªã¢ã©ã€ãºãããšãéçºäžã«é¡èãªããã©ãŒãã³ã¹ã®äœäžãåŒãèµ·ããå¯èœæ§ããããŸããåã«ãããã°ããŒã«ããã®ãªãŒããŒãããã®ããã«ãã¢ããªã±ãŒã·ã§ã³ãé
ãæãããããããããŸããã
解決çïŒé å»¶ãã©ãŒããã¿é¢æ°
Reactã¯ãã®ãŸãã«åé¡ã«å¯Ÿãã解決çãæäŸããŠããŸããuseDebugValueã¯ãªãã·ã§ã³ã®2çªç®ã®åŒæ°ãšããŠãã©ãŒããã颿°ãåãå
¥ããŸãããã®2çªç®ã®åŒæ°ãæå®ãããšããã®é¢æ°ã¯DevToolsãéãããŠãããç¹å®ã®ã³ã³ããŒãã³ããæ€æ»ãããŠããå Žåã«ã®ã¿åŒã³åºãããŸããããã«ãããé«ã³ã¹ããªèšç®ãé
å»¶ããããã¹ãŠã®ã¬ã³ããªã³ã°ã§å®è¡ãããã®ãé²ããŸãã
æ§æã¯æ¬¡ã®ãšããã§ãïŒuseDebugValue(value, formatFn)
useLargeDataããã¯ããªãã¡ã¯ã¿ãªã³ã°ããŠããã®æé©åãããã¢ãããŒãã䜿çšããŠã¿ãŸãããã
function useLargeData(data) {
// ... logic to manage data
// æé©åæžã¿ïŒãã©ãŒããã颿°ã¯DevToolsã§æ€æ»ããããšãã«ã®ã¿å®è¡ãããŸãã
useDebugValue(data, dataArray => `Data contains ${dataArray.length} items. First item: ${JSON.stringify(dataArray[0])}`);
return data;
}
ããã«ãããæ¬¡ã®ããã«ãªããŸãã
- ãã¹ãŠã®ã¬ã³ããªã³ã°ã§ãReactã¯
useDebugValueã®åŒã³åºããèªèããŸããæåã®åŒæ°ãšããŠçã®`data`é åãåãåããŸãã - 2çªç®ã®åŒæ°ïŒãã©ãŒããã颿°ïŒãããã«å®è¡ããŸããã
- éçºè ãReact DevToolsãéãã`useLargeData`ã䜿çšããŠããã³ã³ããŒãã³ããã¯ãªãã¯ãããšãã«ã®ã¿ãReactã¯ãã©ãŒããã颿°ãåŒã³åºããããã«`data`é åãæž¡ããŸãã
- ãã©ãŒããããããæååãDevToolsã®UIã«è¡šç€ºãããŸãã
ãã®ãã¿ãŒã³ã¯éèŠãªãã¹ããã©ã¯ãã£ã¹ã§ãã衚瀺ãããå€ãäœããã®èšç®ã倿ããŸãã¯ãã©ãŒããããå¿ èŠãšããå Žåã¯åžžã«ãããã©ãŒãã³ã¹ã®ããã«ãã£ãé¿ããããã«é å»¶ãã©ãŒããã颿°ã䜿çšãã¹ãã§ãã
å®è·µçãªãŠãŒã¹ã±ãŒã¹ãšäŸ
useDebugValueãæäžäž»ãšãªããããããã«ããã€ãã®å®äžçã®ã·ããªãªãæ¢ã£ãŠã¿ãŸãããã
ãŠãŒã¹ã±ãŒã¹1ïŒéåæããŒã¿ååŸããã¯
äžè¬çãªã«ã¹ã¿ã ããã¯ã¯ãèªã¿èŸŒã¿ãæåããšã©ãŒã®ç¶æ ãå«ãããŒã¿ååŸãåŠçãããã®ã§ãã
function useFetch(url) {
const [status, setStatus] = useState('idle');
const [data, setData] = useState(null);
useDebugValue(`Status: ${status}`);
useEffect(() => {
if (!url) return;
setStatus('loading');
fetch(url)
.then(response => response.json())
.then(json => {
setData(json);
setStatus('success');
})
.catch(error => {
console.error(error);
setStatus('error');
});
}, [url]);
return { status, data };
}
ãã®ããã¯ã䜿çšããŠããã³ã³ããŒãã³ããæ€æ»ãããšãDevToolsã«ã¯æç¢ºã«`Fetch: "Status: loading"`ãæ¬¡ã«`Fetch: "Status: success"`ããŸãã¯`Fetch: "Status: error"`ãšè¡šç€ºãããŸããããã«ããã`console.log`æã远å ããããšãªãããªã¯ãšã¹ãã®ã©ã€ããµã€ã¯ã«ãå³åº§ã«ãªã¢ã«ã¿ã€ã ã§ç¢ºèªã§ããŸãã
ãŠãŒã¹ã±ãŒã¹2ïŒãã©ãŒã å ¥åã®ç¶æ 管ç
ãã©ãŒã å ¥åã管çããããã¯ã®å ŽåãçŸåšã®å€ãšæ€èšŒã¹ããŒã¿ã¹ã衚瀺ããããšã¯éåžžã«åœ¹ç«ã¡ãŸãã
function useFormInput(initialValue) {
const [value, setValue] = useState(initialValue);
const [error, setError] = useState(null);
const handleChange = (e) => {
setValue(e.target.value);
if (e.target.value.length < 5) {
setError('Value must be at least 5 characters');
} else {
setError(null);
}
};
useDebugValue(value, val => `Value: "${val}" ${error ? `(Error: ${error})` : '(Valid)'}`);
return { value, onChange: handleChange, error };
}
ããã§ã¯ãé å»¶ãã©ãŒããã¿ã䜿çšããŠè€æ°ã®ç¶æ å€ãåäžã®è±å¯ãªãããã°ã©ãã«ã«çµåããŸãããDevToolsã§ã¯ã`FormInput: "Value: "hello" (Error: Value must be at least 5 characters)"`ã®ãããªãã®ã衚瀺ãããäžç®ã§å ¥åã®ç¶æ ã®å šäœåãææ¡ã§ããŸãã
ãŠãŒã¹ã±ãŒã¹3ïŒè€éãªç¶æ ãªããžã§ã¯ãã®èŠçŽ
ããã¯ããŠãŒã¶ãŒããŒã¿ã®ãããªè€éãªãªããžã§ã¯ãã管çããŠããå ŽåãDevToolsã§ãªããžã§ã¯ãå šäœã衚瀺ãããšãã€ãºãå€ããªãããšããããŸãã代ããã«ãç°¡æœãªèŠçŽãæäŸããŸãã
function useUserSession() {
const [user, setUser] = useState({ id: '123', name: 'Jane Doe', role: 'Admin', preferences: { theme: 'dark', notifications: true } });
useDebugValue(user, u => u ? `Logged in as ${u.name} (Role: ${u.role})` : 'Logged Out');
return user;
}
DevToolsãæ·±ããã¹ãããããŠãŒã¶ãŒãªããžã§ã¯ãã衚瀺ããããšãã代ããã«ãã¯ããã«æ¶åããããæåå`UserSession: "Logged in as Jane Doe (Role: Admin)"`ã衚瀺ãããŸããããã«ããããããã°ã«æãé¢é£æ§ã®é«ãæ å ±ã匷調ãããŸãã
useDebugValueã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
ãã®ããã¯ãæå€§éã«æŽ»çšããããã«ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããã
- é å»¶ãã©ãŒããããåªå ããïŒçµéšåãšããŠããããã°å€ãäœããã®èšç®ãé£çµããŸãã¯å€æãå¿ èŠãšããå Žåã¯ãåžžã«2çªç®ã®åŒæ°ïŒãã©ãŒããã¿é¢æ°ïŒã䜿çšããŠãã ãããããã«ãããéçºäžã®æœåšçãªããã©ãŒãã³ã¹åé¡ãåé¿ã§ããŸãã
- ã©ãã«ã¯ç°¡æœã§æå³ã®ãããã®ã«ããïŒç®æšã¯ãäžç®ã§ãããç°¡åãªèŠçŽãæäŸããããšã§ããé·ããããè€éããããããã©ãã«ã¯é¿ããŠãã ãããããã¯ã®çŸåšã®åäœãå®çŸ©ããæãéèŠãªç¶æ ã«çŠç¹ãåœãŠãŠãã ããã
- å
±æã©ã€ãã©ãªã«æé©ïŒå
±æã³ã³ããŒãã³ãã©ã€ãã©ãªããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã®äžéšãšãªãã«ã¹ã¿ã ããã¯ãäœæããå Žåã
useDebugValueã䜿çšããããšã¯ãæ¶è²»è ïŒå©çšè ïŒã®éçºè äœéšãåäžãããåªããæ¹æ³ã§ããããã«ããã圌ããããªãã®ããã¯ã®ãœãŒã¹ã³ãŒããèªãããšãªãæŽå¯ãåŸãããšãã§ããŸãã - 䜿ããããªãïŒãã¹ãŠã®ã«ã¹ã¿ã ããã¯ã«ãããã°å€ãå¿
èŠãªããã§ã¯ãããŸãããåäžã®
useStateãã©ããããã ãã®éåžžã«åçŽãªããã¯ã®å Žåãåé·ã«ãªãå¯èœæ§ããããŸããå éšããžãã¯ãè€éã§ããããçã®äŸ¡å€ããç¶æ ãããã«æããã§ãªãå Žåã«äœ¿çšããŠãã ããã - è¯ãåœåãšçµã¿åãããïŒé©åã«åä»ããããã«ã¹ã¿ã ããã¯ïŒäŸïŒ`useOnlineStatus`ïŒãšæç¢ºãªãããã°å€ãçµã¿åãããããšããéçºè äœéšã®ãŽãŒã«ãã¹ã¿ã³ããŒãã§ãã
useDebugValueã*䜿çšãã¹ãã§ãªã*å Žå
å©ç¹ãç¥ãããšãšåãããããå¶éãçè§£ããããšãéèŠã§ãã
- éåžžã®ã³ã³ããŒãã³ãå
ïŒã©ã³ã¿ã€ã ãšã©ãŒãåŒãèµ·ãããŸãã
useDebugValueã¯ã«ã¹ã¿ã ããã¯å°çšã§ããã¯ã©ã¹ã³ã³ããŒãã³ãã®å Žåã¯`displayName`ããããã£ã䜿çšã§ãã颿°ã³ã³ããŒãã³ãã®å Žåã¯æç¢ºãªé¢æ°åã§éåžžã¯ååã§ãã - æ¬çªããžãã¯ã®ããïŒããã¯éçºå°çšã®ããŒã«ã§ããããšãå¿ããªãã§ãã ãããã¢ããªã±ãŒã·ã§ã³ã®åäœã«äžå¯æ¬ ãªããžãã¯ã
useDebugValueå ã«é 眮ããªãã§ãã ãããæ¬çªãã«ãã«ã¯ååšããªãããã§ããæ¬çªç°å¢ã§ã®æŽå¯ã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ç£èŠïŒAPMïŒããã®ã³ã°ãµãŒãã¹ãªã©ã®ããŒã«ã䜿çšããŠãã ããã - è€éãªãããã°ã®ããã®`console.log`ã®ä»£æ¿ãšããŠïŒã¹ããŒã¿ã¹ã©ãã«ã«ã¯åªããŠããŸããã
useDebugValueã¯ã€ã³ã¿ã©ã¯ãã£ããªãªããžã§ã¯ãã衚瀺ãããããã¬ãŒã¯ãã€ã³ãã`console.log`æãšåãããã«ã¹ãããã¹ã«ãŒãããã°ã«äœ¿çšãããããããšã¯ã§ããŸããããããã®ããŒã«ã眮ãæããã®ã§ã¯ãªããè£å®ãããã®ã§ãã
çµè«
Reactã®useDebugValueã¯ãããã¯APIãžã®å°ãããªããã匷åãªè¿œå æ©èœã§ããã«ã¹ã¿ã ããã¯ã®å
éšåäœãžã®æç¢ºãªçªãæäŸããããšã§ãæœè±¡åãããããžãã¯ã®ãããã°ãšãã課é¡ã«çŽæ¥å¯ŸåŠããŸããReact DevToolsã®æ±çšçãªããã¯ãªã¹ããã説æçã§æèã«æ²¿ã£ã衚瀺ã«å€æããããšã«ãããèªç¥è² è·ã倧å¹
ã«è»œæžãããããã°ãé«éåããå
šäœçãªéçºè
äœéšãåäžãããŸãã
ãã®ç®çãçè§£ããããã©ãŒãã³ã¹ãæé©åããé
å»¶ãã©ãŒããã¿ãåãå
¥ããè€éãªã«ã¹ã¿ã ããã¯ã«æ
éã«é©çšããããšã§ãReactã¢ããªã±ãŒã·ã§ã³ãããéæã§ä¿å®ããããããããšãã§ããŸããæ¬¡ã«èªæã§ãªãç¶æ
ãããžãã¯ãæã€ã«ã¹ã¿ã ããã¯ãäœæããéã«ã¯ãå°ãæéããããŠuseDebugValueã远å ããŠã¿ãŠãã ãããããã¯ãå°æ¥ã®éçºããããã°ã»ãã·ã§ã³ã«ãããŠãããªããšããªãã®ããŒã ã«å€§ããªå©çããããããã³ãŒãã®æçããžã®å°ããªæè³ã§ãã